Skip to main content

Gitignore

Gitignore

.gitignore tells Git which files and directories to ignore, keeping secrets, build artifacts, and local configuration out of your repository.

What is .gitignore?​

.gitignore is a plain text file in your repository root. Each line is a pattern that matches file paths to ignore. Files matching these patterns won't appear in git status and won't be staged or committed.

Create a .gitignore File​

In your repository root:

touch .gitignore

Then open it in your editor and add patterns.

Common Patterns​

Ignore a specific file:

secrets.env

Ignore all files with an extension:

*.log
*.pyc

Ignore a directory:

node_modules/
dist/
__pycache__/

Ignore a file only in the root directory:

/config.local.json

Ignore a file in any subdirectory:

**/debug.log

Allow a file that would otherwise be matched by a broader rule (use !):

*.log
!important.log

View Ignored Files​

Check which files are currently being ignored:

git check-ignore -v filename.txt

List all ignored files in the repository:

git status --ignored

Stop Tracking a File That's Already Committed​

If you accidentally committed a file and now want to ignore it, adding it to .gitignore alone isn't enough — Git is already tracking it. Remove it from tracking:

git rm --cached filename.txt

Then add the pattern to .gitignore, commit both changes:

git add .gitignore
git commit -m "Stop tracking secrets.env and add to .gitignore"

Global .gitignore​

Set up a global ignore file that applies across all your repositories — useful for IDE files and OS-generated files:

git config --global core.excludesFile ~/.gitignore_global

Then add patterns to ~/.gitignore_global:

.DS_Store
Thumbs.db
.idea/
.vscode/
tip

GitHub provides starter .gitignore templates for popular languages and frameworks at github.com/github/gitignore. Use these as a starting point for new projects.

Common Mistakes​

Adding secrets after they've been committed — .gitignore only prevents future tracking. If a secret was already committed, it's in the history. Rotate the credential immediately and use git filter-repo or GitHub's secret scanning to assess the impact.

Ignoring files with the wrong path separator — Git uses forward slashes (/) in .gitignore patterns on all platforms, including Windows.

Forgetting to commit .gitignore — .gitignore is a project file and should be committed so all collaborators benefit from the same ignore rules.


Next Steps: Identifying and Resolving Advanced Merge Conflicts

Enjoying the course? Found this useful? Check out the blog for more deep dives on data engineering and software.